#include <unistd.h> 
#include <stdio.h> 
#include <signal.h> 

/*
 * 该调用使得发出调用的进程进入睡眠，直到接收到一个信号为止。该调用总是返回-1，并设置错误代码为EINTR（接收到一个信号）
 *
 * 程序开始执行，就象进入了死循环一样，这是因为进程正在等待信号，当我们按下Ctrl-C时，信号被捕捉，并且使得pause退出等待状态
 */
void sigroutine(int unused) { 
  printf("Catch a signal SIGINT\n"); 
} 

int main() { 
  signal(SIGINT, sigroutine); 
  pause(); 
  printf("receive a signal "); 
} 
